package org.michael.u.brg.i18n.litz;


/**
 * Hebrew implementation, dumb way. For smart way, see {@link KeyMap} with XML parsing.
 */
public class LitzHe extends LitzXlator {

    public String getVisual(String encoding) {
        int len = encoding.length();
        final StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            char c = encoding.charAt(i);
            switch (c) {
                case 65: // 'A'
                    c = '\u05D0';
                    break;

                case 97: // 'a'
                    c = '\u05D0';
                    break;

                case 66: // 'B'
                    c = '\u05D1';
                    break;

                case 98: // 'b'
                    c = '\u05D1';
                    break;

                case 67: // 'C'
                    c = '\u05E5';
                    break;

                case 99: // 'c'
                    c = '\u05E6';
                    break;

                case 68: // 'D'
                    c = '\u05D3';
                    break;

                case 100: // 'd'
                    c = '\u05D3';
                    break;

                case 69: // 'E'
                    c = '\u05E2';
                    break;

                case 101: // 'e'
                    c = '\u05E2';
                    break;

                case 70: // 'F'
                    c = '\u05E3';
                    break;

                case 102: // 'f'
                    c = '\u05E4';
                    break;

                case 71: // 'G'
                    c = '\u05D2';
                    break;

                case 103: // 'g'
                    c = '\u05D2';
                    break;

                case 72: // 'H'
                    c = '\u05D7';
                    break;

                case 104: // 'h'
                    c = '\u05D4';
                    break;

                case 73: // 'I'
                    c = '\u05F2';
                    break;

                case 105: // 'i'
                    c = '\u05D9';
                    break;

                case 74: // 'J'
                    c = '\u05F0';
                    break;

                case 106: // 'j'
                    c = '\u05F1';
                    break;

                case 75: // 'K'
                    c = '\u05DA';
                    break;

                case 107: // 'k'
                    c = '\u05DB';
                    break;

                case 76: // 'L'
                    c = '\u05DC';
                    break;

                case 108: // 'l'
                    c = '\u05DC';
                    break;

                case 77: // 'M'
                    c = '\u05DD';
                    break;

                case 109: // 'm'
                    c = '\u05DE';
                    break;

                case 78: // 'N'
                    c = '\u05DF';
                    break;

                case 110: // 'n'
                    c = '\u05E0';
                    break;

                case 79: // 'O'
                    c = '\u0401';
                    break;

                case 111: // 'o'
                    c = '\u0451';
                    break;

                case 80: // 'P'
                    c = '\u05E3';
                    break;

                case 112: // 'p'
                    c = '\u05E4';
                    break;

                case 81: // 'Q'
                    c = '\u05E7';
                    break;

                case 113: // 'q'
                    c = '\u05E7';
                    break;

                case 82: // 'R'
                    c = '\u05E8';
                    break;

                case 114: // 'r'
                    c = '\u05E8';
                    break;

                case 83: // 'S'
                    c = '\u05E1';
                    break;

                case 115: // 's'
                    c = '\u05E1';
                    break;

                case 84: // 'T'
                    c = '\u05D8';
                    break;

                case 116: // 't'
                    c = '\u05EA';
                    break;

                case 85: // 'U'
                    c = '\u042E';
                    break;

                case 117: // 'u'
                    c = '\u044E';
                    break;

                case 86: // 'V'
                    c = '\u05D5';
                    break;

                case 118: // 'v'
                    c = '\u05D5';
                    break;

                case 87: // 'W'
                    c = '\u05E9';
                    break;

                case 119: // 'w'
                    c = '\u05E9';
                    break;

                case 120: // 'x'
                    c = '\u0448';
                    break;

                case 88: // 'X'
                    c = '\u0448';
                    break;

                case 89: // 'Y'
                    c = '\u042A';
                    break;

                case 121: // 'y'
                    c = '\u044A';
                    break;

                case 90: // 'Z'
                    c = '\u05D6';
                    break;

                case 122: // 'z'
                    c = '\u05D6';
                    break;
            }
            sb.append(c);
        }
        return sb.toString();
    }

    public String getEncoding(String visual) {
        return null;
    }

    public String getName() {
        return "Hebrew";
    }
}
